package com.eagledata.project.weixin.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import com.alibaba.fastjson.JSONObject;
import com.eagledata.common.utils.HttpsUtils;
public class WeiXinBasic {
	
	/**
	 *
	 * @Description		:  在需要记录未登录（系统内用户）用户点击（溯源），或者需要查询用户的基本信息（头像、地址等），
							要将地址发往微信服务器后，微信服务器携带用户对该公众号的code（临时凭证）进行访问
	 * @author    		:  XueMeng
	 * @date      		:  2018年6月27日 下午4:36:36
	 * @return    		:  String
	 * @参数说明	  		:  @return
	 *
	 */
	public static String splitJoint(String tergetUrl) {
		try {
			String encodingTargetUrl = URLEncoder.encode(tergetUrl,"utf-8") ;
			String originalUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WeiXinParam.APPID + "&redirect_uri=" + encodingTargetUrl + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
			return originalUrl;
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	
	/**
	 *
	 * @Description		:  设置微信开始页面的菜单及指向路径
	 * @author    		:  XueMeng
	 * @date      		:  2018年6月27日 下午5:03:44
	 * @return    		:  String
	 * @参数说明	  		:  @return
	 *
	 */
	public static String setMenu() {
		String url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + WeiXinParam.access_token;
		String body = "{    \"button\": [        {            \"name\": \"M5周刊\",            \"type\": \"view\",            \"url\": \"http://xuemeng.tunnel.qydev.com/\"        },        {            \"name\": \"M5优选\",            \"sub_button\": [                {                    \"name\": \"M5优品\",                    \"type\": \"view\",                    \"url\": \"http://xuemeng.tunnel.qydev.com/\"                },                {                    \"name\": \"M5优房\",                    \"type\": \"view\",                    \"url\": \"http://xuemeng.tunnel.qydev.com/\"                },                {                    \"name\": \"M5会员之家\",                    \"type\": \"view\",                    \"url\": \"http://xuemeng.tunnel.qydev.com/\"                }            ],            \"type\": \"view\"        },        {            \"name\": \"我是会员\",            \"sub_button\": [                {                    \"name\": \"注册/登录\",                    \"type\": \"view\",                    \"url\": \"http://xuemeng.tunnel.qydev.com/\"                },                {                    \"name\": \"会员管理\",                    \"type\": \"view\",                    \"url\": \"http://xuemeng.tunnel.qydev.com/\"                },                {                    \"name\": \"关于我们\",                    \"type\": \"view\",                    \"url\": \"http://xuemeng.tunnel.qydev.com/\"                }            ],            \"type\": \"view\"        }    ]}";
		String result = HttpsUtils.doPostByHttps(url, body);
    	return result;
	}
	
	
	/**
	 *
	 * @Description		:  根据code获取用户的openid
	 * @author    		:  XueMeng
	 * @date      		:  2018年6月27日 下午5:09:36
	 * @return    		:  String
	 * @参数说明	  		:  @param code
	 * @参数说明	  		:  @return
	 *
	 */
	public String getOpenIdByCode(String code) {
		String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + WeiXinParam.access_token + "&secret=" + WeiXinParam.APPSECRET + "&code=" + code + "&grant_type=authorization_code";
		String result = HttpsUtils.doGetByHttps(url);
		JSONObject jo = JSONObject.parseObject(result);
		return jo.getString("openid");
	}
	
	
	/**
	 *
	 * @Description		:  根据openid获取到用户的头像信息
	 * @author    		:  XueMeng
	 * @date      		:  2018年6月27日 下午5:13:20
	 * @return    		:  String
	 * @参数说明	  		:  @param openid
	 * @参数说明	  		:  @return
	 *
	 */
	public String getHeadimgurl(String openid) {
		String url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + WeiXinParam.access_token + "&openid=" + openid + "&lang=zh_CN";
		String result = HttpsUtils.doGetByHttps(url);
		JSONObject jo = JSONObject.parseObject(result);
		return jo.getString("headimgurl");
	}

}
